Lambdamart implementation#52
Conversation
… metric calculation related implementation. Also added the ranker to the tests
Keras 2.3 renamed `lr` to `learning_rate`. It is not entirely clear what convention `tf.keras` will follow (cf. keras-team/keras#13393), therefore we will deal with this when we transition to tf2 and tf.keras.
After changing the dependency to Tensorflow<2.0 the ranking tests were failing, due to small variations in loss values. To make the tests more robust, we require them to converge to 0 loss now and thus made the test learning problem much simpler to learn. This is an overview of the changes: * Pin Tensorflow to version 1.x * Improve convergence and speed of ranking tests - Reduce the number of instances of the learning problem - Require learners to reach exactly 0 loss.
Save State
-Added the ignore folder in gitignore
- Added another baseline for Object Ranking problem
We need to escape backslashes in latex code, since python otherwise interprets \c as an escaped unicode character. Fixes kiudee#59
Apparently tf.keras now uses[1] `learning_rate` instead of `lr` too, so we should switch. [1]keras-team/keras#13393
We do not have control about any of these warnings except the last one. And that one is harmless in a testing context. Maintaining a list of these filters is cumbersome. I wish there was some way to automatically ignore all warnings caused by third party code, but unfortunately I don't think there currently is. I've opened pytest-dev/pytest#6191 to discuss this. I still think it is worthwhile to filter these warnings, because otherwise they drown out those warnings that are actually relevant.
Out of our control. Fixes kiudee#74
… metric calculation related implementation. Also added the ranker to the tests
…o object ranking constants list
|
Thank you for the new work on the implementation. Could you rebase your branch onto master and force push it here? Then it would be easier to review the changes. |
|
I would agree with @kiudee. |
… metric calculation related implementation. Also added the ranker to the tests
…o object ranking constants list
…rish22/cs-ranking into lambdamart-implementation
|
I have finished the rebase @kiudee. I had done it with my master but forgot to rebase my branch on my master. Now it is be done. |
|
@srinikrish22 Did you update the tensorflow, the 2.0 version should have a lot of problems. as far as i know, your ranker does not use tensorflow. So you should just fix your version of the last stable release of the tensorflow. |
|
@srinikrish22 I think you need to first pull the latest master before you do the rebase. Currently, there are still commits in this branch which do not belong to your changes (example 6c4c30c) |
|
@kiudee I have created a new pull request to clarify the confusion about rebase with the current master. This should make things easier to compare the changes. |
|
Closing this in favor of #82. |
I have implemented the LambdaMART algorithm for object ranking.
Description
I have created a class with the required core functionality of lambdamart and added ndcg metric implementation to the utils. I have added the ranker into the test_ranking and also added the ranker definition in the constants.
Motivation and Context
This change aims at adding an implementation of a new ranker for object ranking to the repository.
How Has This Been Tested?
I have added the possibility to test this ranker under the existing testing infrastructure of the cs-ranking repository.
Does this close/impact existing issues?
Types of changes
Checklist: